//
//  RW_Players.h
//  SleepApp
//
//  Created by chuangqi on 2021/3/30.
//  Copyright © 2021 RiceWang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "RW_SongModel.h"
#import "RW_PlayerViewController.h"

/** 播放循环类型 */
typedef enum : NSUInteger {
    Player_RunLoop_Type_Default,//默认播放模式 列表循环
    Player_RunLoop_Type_Circulation,//单曲循环
    Player_RunLoop_Type_Random,//随机播放
} Player_RunLoop_Type;


/** 播放状态 */
typedef enum : NSUInteger {
    Player_Status_Type_Default,//等待播放
    Player_Status_Type_InitData,//初始化完毕
    Player_Status_Type_Stoping,//暂停
    Player_Status_Type_Playing,//正在播放
    Player_Status_Type_Download,//下载状态
    Player_Status_Type_Error,//播放失败或者下载失败
} Player_Status_Type;

/** 封装的播放器 */
@interface RW_Players : NSObject
#pragma mark -- 初始化数据！必须
/** 音频列表 */
@property (nonatomic, strong) NSArray<RW_SongModel *> *songList;
#pragma mark -- 功能性方法或者属性
/** 当前播放的音频模型 只读 */
@property (nonatomic, strong) RW_SongModel *play_song;
/** 当前播放的音频总秒数 只读  */
@property (nonatomic, assign) NSInteger play_all_second;
/** 当前播放状态 只读 */
@property (nonatomic, assign) Player_Status_Type play_status_type;
/** 当前下载进度  play_status_type 为 Player_Status_Type_Download 才有效  只读*/
@property (nonatomic, assign) float play_download_progress;
/** 当前播放的音频的秒数  读 */
@property (nonatomic, assign) NSInteger play_second;
/** 当前播放的音频下标 修改当前播放的下标 读 */
@property (nonatomic, assign) NSInteger play_index;
/** 当前播放循环模式 读 */
@property (nonatomic, assign) Player_RunLoop_Type play_runLoop_type;



/** 上一首 */
-(void)lessPlayIndex;
/** 下一首 */
-(void)nextPlayIndex;
/** 修改当前播放的秒数量 */
-(void)change_play_second:(NSInteger)second;
/** 修改当前播放的声音大小 0-100 */
-(void)change_play_volume:(NSInteger)volume;
/** 修改当前播放的下标 */
-(void)change_play_index:(NSInteger)index;
/** 修改播放循环模式 */
-(void)change_runLoop_type:(Player_RunLoop_Type)play_runLoop_type;


/** 开始播放 */
-(void)beginPlay;
/** 停止播放 */
-(void)stopPlay;
/** 暂停播放 */
-(void)pausePlay;

#pragma mark -- 释放当前播放器属性
-(void)releaseVM;
@end
